//对于axios进行二次封装
import axios from "axios";
// import {Message} from "element-ui"
//在当前模块中引入store
// import store from '@/store';
//如果出现进度条没有显示：一定是你忘记了引入样式了

//底下的代码也是创建axios实例
let requests = axios.create({
  //基础路径
  baseURL: "/api",
  //请求不能超过5S
  timeout: 5000,
});

//请求拦截器----在项目中发请求（请求没有发出去）可以做一些事情
requests.interceptors.request.use(
  (config) => {
    //现在的问题是config是什么?配置对象
    //可以让进度条开始动

    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
);

//响应拦截器----当服务器手动请求之后，做出响应（相应成功）会执行的
requests.interceptors.response.use(
  (response) => {
    //进度条结束
    let res = response.data;

    // let path = location.hash
    if (res.status == 0) {
      return res;
    } else if (res.status == 10) {
      window.location.href = "/login";
      return Promise.reject(res);
     } else {
      
     alert(res.msg);
    
      return Promise.reject(res);
    }

    //相应成功做的事情
  },
  (err) => { let res=err.response;
    alert(res.data.message);
    return Promise.reject(err);
  }
);
//最终需要对外暴露（不对外暴露外面模块没办法使用）
//这里的代码是暴露一个axios实例
export default requests;
